package exception;

import java.sql.SQLOutput;

/**
 * 异常处理机制中的try-catch
 * 语法：
 * try{
 *      可能出现异常的代码片段
 *      }catch(XXXException e){
 *      try中出现XXXException后出的处理手段
 *
 *
 *
 *
 * }
 *
 *
 *
 *
 *
 */



public class TryCatchDEmo {
    public static void main(String[] args) {

        System.out.println("程序开始了...");

        try{
//            String str = null;
//            String str = "";
            String str = "a";



            System.out.println(str.length());//抛出一个空指针异常实例

            System.out.println(str.charAt(0));

            System.out.println(Integer.parseInt(str));

            /*
                try语句块中出现异常的语句之后的内容都不会再出现



             */



            System.out.println("!!!!!!!");
            System.out.println("eeeeeeeeeee");



        }catch (NullPointerException | StringIndexOutOfBoundsException e) {
            System.out.println("出现了空指针并解决了！");
            //可以在最后一个catch处捕获Exception，避免因为意想不到的异常抛出导致程序中断

            //catch可以定义多个，当try中出现多个无法避免的异常时，可以分别捕获并处理

//        }catch (StringIndexOutOfBoundsException e){
//            System.out.println("出现了下标越界错误！并解决了！");

        }catch (Exception e){
            System.out.println("反正就是出了个错！");
        }
            System.out.println("程序结束了...");
    }
}
